<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Alexa Auto SDK: LocalMediaSource.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="aace-logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Alexa Auto SDK
   &#160;<span id="projectnumber">2.2.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><a class="el" href="dir_e05d7e2b1ecd646af5bb94391405f3b5.html">modules</a></li><li class="navelem"><a class="el" href="dir_4f53e4e39e3f016873518ae62e06f967.html">alexa</a></li><li class="navelem"><a class="el" href="dir_7f60adebdeaa12bc5139470d7019e227.html">platform</a></li><li class="navelem"><a class="el" href="dir_34a58b11622bdb4d27ed9d3e222de140.html">include</a></li><li class="navelem"><a class="el" href="dir_4c435c243dbda8f1a07608cac05c2731.html">AACE</a></li><li class="navelem"><a class="el" href="dir_4e3859205811755218ef1459ac1cfa9a.html">Alexa</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="headertitle">
<div class="title">LocalMediaSource.h</div>  </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno">    1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno">    2</span>&#160;<span class="comment"> * Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.</span></div><div class="line"><a name="l00003"></a><span class="lineno">    3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno">    4</span>&#160;<span class="comment"> * Licensed under the Apache License, Version 2.0 (the &quot;License&quot;).</span></div><div class="line"><a name="l00005"></a><span class="lineno">    5</span>&#160;<span class="comment"> * You may not use this file except in compliance with the License.</span></div><div class="line"><a name="l00006"></a><span class="lineno">    6</span>&#160;<span class="comment"> * A copy of the License is located at</span></div><div class="line"><a name="l00007"></a><span class="lineno">    7</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00008"></a><span class="lineno">    8</span>&#160;<span class="comment"> *     http://aws.amazon.com/apache2.0/</span></div><div class="line"><a name="l00009"></a><span class="lineno">    9</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00010"></a><span class="lineno">   10</span>&#160;<span class="comment"> * or in the &quot;license&quot; file accompanying this file. This file is distributed</span></div><div class="line"><a name="l00011"></a><span class="lineno">   11</span>&#160;<span class="comment"> * on an &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either</span></div><div class="line"><a name="l00012"></a><span class="lineno">   12</span>&#160;<span class="comment"> * express or implied. See the License for the specific language governing</span></div><div class="line"><a name="l00013"></a><span class="lineno">   13</span>&#160;<span class="comment"> * permissions and limitations under the License.</span></div><div class="line"><a name="l00014"></a><span class="lineno">   14</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00015"></a><span class="lineno">   15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno">   16</span>&#160;<span class="preprocessor">#ifndef AACE_ALEXA_LOCAL_MEDIA_SOURCE_H</span></div><div class="line"><a name="l00017"></a><span class="lineno">   17</span>&#160;<span class="preprocessor">#define AACE_ALEXA_LOCAL_MEDIA_SOURCE_H</span></div><div class="line"><a name="l00018"></a><span class="lineno">   18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno">   19</span>&#160;<span class="preprocessor">#include &lt;chrono&gt;</span></div><div class="line"><a name="l00020"></a><span class="lineno">   20</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div><div class="line"><a name="l00021"></a><span class="lineno">   21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno">   22</span>&#160;<span class="preprocessor">#include &quot;AACE/Core/PlatformInterface.h&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno">   23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno">   24</span>&#160;<span class="preprocessor">#include &quot;ExternalMediaAdapter.h&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno">   25</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno">   28</span>&#160;<span class="keyword">namespace </span><a class="code" href="namespaceaace.html">aace</a> {</div><div class="line"><a name="l00029"></a><span class="lineno">   29</span>&#160;<span class="keyword">namespace </span>alexa {</div><div class="line"><a name="l00030"></a><span class="lineno">   30</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source.html">   38</a></span>&#160;<span class="keyword">class </span><a class="code" href="classaace_1_1alexa_1_1_local_media_source.html">LocalMediaSource</a> : <span class="keyword">public</span> <a class="code" href="classaace_1_1core_1_1_platform_interface.html">aace::core::PlatformInterface</a> {</div><div class="line"><a name="l00039"></a><span class="lineno">   39</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">   43</a></span>&#160;    <span class="keyword">enum class</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">Source</a> {</div><div class="line"><a name="l00047"></a><span class="lineno">   47</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a8de8a62c3191fb6cf61e0ac4b2b59045">BLUETOOTH</a>,</div><div class="line"><a name="l00051"></a><span class="lineno">   51</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a7aca5ec618f7317328dcd7014cf9bdcf">USB</a>,</div><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3aedcb4026e4075f9367b903d5b2c97e65">FM_RADIO</a>,</div><div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3abcae55301ccf164120b76b74b960f217">AM_RADIO</a>,</div><div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3ac88fb9fa48ad5e1cf455de65f0a769a8">SATELLITE_RADIO</a>,</div><div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a8ed9247709b828e86d4db1e0a207e2c5">LINE_IN</a>,</div><div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a22339bd4fde59838518b6304cb6a0caf">COMPACT_DISC</a>,</div><div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3acfe28902332d7da3436d56bd02e24d67">SIRIUS_XM</a>,</div><div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3ab30917aa48bf6125b9e85daf9c6eb5fc">DAB</a></div><div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;    };</div><div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19d">   85</a></span>&#160;    <span class="keyword">enum class</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19d">ContentSelector</a> {</div><div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;        FREQUENCY,</div><div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;        CHANNEL,</div><div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;        PRESET</div><div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    };</div><div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    </div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source.html#aea96a47b1442b4c5fa2906b2e0d9a4a9">  101</a></span>&#160;    <span class="keyword">using</span> PlayControlType = ExternalMediaAdapter::PlayControlType;</div><div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;    <span class="keyword">using</span> <a class="code" href="classaace_1_1audio_1_1_audio_output.html#ad03cbdbbf172fd64a16c16b64d8a4b05">MutedState</a> = <a class="code" href="classaace_1_1audio_1_1_audio_output.html#ad03cbdbbf172fd64a16c16b64d8a4b05">ExternalMediaAdapter::MutedState</a>;</div><div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;    <span class="keyword">using</span> SupportedPlaybackOperation = ExternalMediaAdapter::SupportedPlaybackOperation;</div><div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    <span class="keyword">using</span> Favorites = ExternalMediaAdapter::Favorites;</div><div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keyword">using</span> MediaType = ExternalMediaAdapter::MediaType;</div><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html">  110</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html">SessionState</a> {</div><div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;        <span class="comment">/*</span></div><div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;<span class="comment">         * Default Constructor.</span></div><div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;<span class="comment">         */</span></div><div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html">SessionState</a>();</div><div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a8e331ee5d60fd3d034acddccfd73f87c">  118</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a8e331ee5d60fd3d034acddccfd73f87c">endpointId</a>;</div><div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#aa34672570b2e78efa57b913ba5de086d">  121</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#aa34672570b2e78efa57b913ba5de086d">loggedIn</a>;</div><div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a94c0ace7076a16849d18bf34fb157a2c">  124</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a94c0ace7076a16849d18bf34fb157a2c">userName</a>;</div><div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#acf3bb6f9c5201741392a1387fbe774bb">  127</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#acf3bb6f9c5201741392a1387fbe774bb">isGuest</a>;</div><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a76eedef6ff685965e14f901863d44e7f">  130</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a76eedef6ff685965e14f901863d44e7f">launched</a>;</div><div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a68cbf53fad92de84fd8c6c857bbd7332">  136</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a68cbf53fad92de84fd8c6c857bbd7332">active</a>;</div><div class="line"><a name="l00137"></a><span class="lineno">  137</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#aa5e39976d05399f8ded96efd82760d9a">  142</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#aa5e39976d05399f8ded96efd82760d9a">accessToken</a>;</div><div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a10073922619c9deba7c285325c7360a5">  145</a></span>&#160;        std::chrono::milliseconds <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a10073922619c9deba7c285325c7360a5">tokenRefreshInterval</a>;</div><div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a8cff541377f47ba71c31fda6f53b46bf">  148</a></span>&#160;        std::vector&lt;ContentSelector&gt; <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a8cff541377f47ba71c31fda6f53b46bf">supportedContentSelectors</a>;</div><div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;        </div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a2b5d75eb773a180280a9e86311fb216a">  151</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a2b5d75eb773a180280a9e86311fb216a">spiVersion</a>;</div><div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;    };</div><div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;    </div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html">  157</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html">PlaybackState</a> {</div><div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html">PlaybackState</a>();</div><div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0c31f8757f4f16cdaa82b7488afd21c5">  163</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0c31f8757f4f16cdaa82b7488afd21c5">state</a>;</div><div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a9663c11c93549bac86bc0794e7a6193b">  166</a></span>&#160;        std::vector&lt;SupportedPlaybackOperation&gt; <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a9663c11c93549bac86bc0794e7a6193b">supportedOperations</a>;</div><div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a03ddbda405c7381c38382f7f21e04635">  169</a></span>&#160;        std::chrono::milliseconds <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a03ddbda405c7381c38382f7f21e04635">trackOffset</a>;</div><div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ad9dbda90ac6bebf653a00d373cc3f296">  172</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ad9dbda90ac6bebf653a00d373cc3f296">shuffleEnabled</a>;</div><div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac7d32d117f01f4e07020b68eb3d7a329">  175</a></span>&#160;        <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac7d32d117f01f4e07020b68eb3d7a329">repeatEnabled</a>;</div><div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a21f1fe29e355b3df6efe8961cfb2b424">  178</a></span>&#160;        Favorites <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a21f1fe29e355b3df6efe8961cfb2b424">favorites</a>;</div><div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a934dcf2adab877ac18d865ce00b5b9c9">  181</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a934dcf2adab877ac18d865ce00b5b9c9">type</a>;</div><div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ae5c486e6d4c79537597a8430d099b2dd">  184</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ae5c486e6d4c79537597a8430d099b2dd">playbackSource</a>;</div><div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a42ff0f9ba02eff868248aa688db77221">  188</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a42ff0f9ba02eff868248aa688db77221">playbackSourceId</a>;</div><div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#aecb7cc6074bd7e23c166ace53b5436c1">  191</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#aecb7cc6074bd7e23c166ace53b5436c1">trackName</a>;</div><div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a421de2ac72c7b632ececfa0472988c83">  194</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a421de2ac72c7b632ececfa0472988c83">trackId</a>;</div><div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a5a9c2c7c21e3c64901f49d73e1f33197">  198</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a5a9c2c7c21e3c64901f49d73e1f33197">trackNumber</a>;</div><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac4e528288c407184054986b7c5f4401c">  201</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac4e528288c407184054986b7c5f4401c">artistName</a>;</div><div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a9af882dbc200b638b54081e0248ff013">  205</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a9af882dbc200b638b54081e0248ff013">artistId</a>;</div><div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0489c6562129c6520da07ff829805270">  208</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0489c6562129c6520da07ff829805270">albumName</a>;</div><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a31bc8ee91146a94d157d6d91f8a3f366">  212</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a31bc8ee91146a94d157d6d91f8a3f366">albumId</a>;</div><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0b32a57129734f844645fe78264195e9">  215</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0b32a57129734f844645fe78264195e9">tinyURL</a>;</div><div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac2f9ba4ca5782c9ad8d6aa3dffe34d04">  218</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac2f9ba4ca5782c9ad8d6aa3dffe34d04">smallURL</a>;</div><div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac09dd6568db8fefda4001e9d02bc0a5e">  221</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac09dd6568db8fefda4001e9d02bc0a5e">mediumURL</a>;</div><div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a96937de06c1065ed35cde06bf609605a">  224</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a96937de06c1065ed35cde06bf609605a">largeURL</a>;</div><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0a697b06e34e1687628a00d7a9e06f55">  228</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0a697b06e34e1687628a00d7a9e06f55">coverId</a>;</div><div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#af5047b85c14787ac9604c2e1cd69ec7b">  232</a></span>&#160;        std::string <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#af5047b85c14787ac9604c2e1cd69ec7b">mediaProvider</a>;</div><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a815882ddd4509bc466cb4e9fd7aab90b">  235</a></span>&#160;        MediaType <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a815882ddd4509bc466cb4e9fd7aab90b">mediaType</a>;</div><div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a1899127344b0f4e5bab4ed6fe434d62e">  238</a></span>&#160;        std::chrono::milliseconds <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a1899127344b0f4e5bab4ed6fe434d62e">duration</a>;</div><div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;    };</div><div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html">  244</a></span>&#160;    <span class="keyword">class </span><a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html">LocalMediaSourceState</a> {</div><div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keyword">public</span>:</div><div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html">LocalMediaSourceState</a>();</div><div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html#a1a0533445205c67cca585e45ba1e9486">  250</a></span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html">SessionState</a> <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html#a1a0533445205c67cca585e45ba1e9486">sessionState</a>;</div><div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html#a22cb98bddfdd580cc71069d3167a58a5">  253</a></span>&#160;        <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html">PlaybackState</a> <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html#a22cb98bddfdd580cc71069d3167a58a5">playbackState</a>;</div><div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;    };</div><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;    <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html">LocalMediaSource</a>( <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">Source</a> source );</div><div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;    <span class="keyword">virtual</span> ~<a class="code" href="classaace_1_1alexa_1_1_local_media_source.html">LocalMediaSource</a>();</div><div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ab6fdd7996ddcadc828f3f9de03824626">play</a>( <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19d">ContentSelector</a> contentSelectorType, <span class="keyword">const</span> std::string&amp; payload ) = 0;</div><div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ad541a6f60242ad371b453570e1e8da4d">playControl</a>( PlayControlType controlType ) = 0;</div><div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#af1bdc078c4702c3f8b7a864dd0095a47">seek</a>( std::chrono::milliseconds offset ) = 0;</div><div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno">  304</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ae5514b48fe84f065ef8b115de0b6b8c3">adjustSeek</a>( std::chrono::milliseconds deltaOffset ) = 0;</div><div class="line"><a name="l00305"></a><span class="lineno">  305</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;    <span class="keyword">virtual</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html">LocalMediaSourceState</a> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ab548e09fd634975590e4fd3bf2843682">getState</a>() = 0;</div><div class="line"><a name="l00310"></a><span class="lineno">  310</span>&#160;    </div><div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#aa4a2d08e30728bcfb35bcba0f4921aa1">volumeChanged</a>( <span class="keywordtype">float</span> volume ) = 0;</div><div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;    <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#afe2c689e38a4e5f8bd6ebd630412cef7">mutedStateChanged</a>( <a class="code" href="classaace_1_1audio_1_1_audio_output.html#ad03cbdbbf172fd64a16c16b64d8a4b05">MutedState</a> state ) = 0;</div><div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;    <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">Source</a> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a7876023493487be41be9044c198dfba2">getSource</a>();</div><div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;    </div><div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;    <span class="comment">// LocalMediaSourceEngineInterface</span></div><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a874c1999278a4a9598b2cfddf2639563">playerEvent</a>( <span class="keyword">const</span> std::string&amp; eventName );</div><div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a5a007447092c61ff90785b4fa9fa0fd3">playerError</a>( <span class="keyword">const</span> std::string&amp; errorName, <span class="keywordtype">long</span> code, <span class="keyword">const</span> std::string&amp; description, <span class="keywordtype">bool</span> fatal );</div><div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160;</div><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    <span class="keywordtype">void</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ad1217e4c192da618ae846ba57c8611ac">setFocus</a>( <span class="keywordtype">bool</span> focusAcquire = <span class="keyword">true</span> );</div><div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno">  371</span>&#160;    <span class="keywordtype">void</span> setEngineInterface( std::shared_ptr&lt;aace::alexa::LocalMediaSourceEngineInterface&gt; localMediaSourceEngineInterface );</div><div class="line"><a name="l00372"></a><span class="lineno">  372</span>&#160;</div><div class="line"><a name="l00373"></a><span class="lineno">  373</span>&#160;<span class="keyword">private</span>:</div><div class="line"><a name="l00374"></a><span class="lineno">  374</span>&#160;    std::weak_ptr&lt;aace::alexa::LocalMediaSourceEngineInterface&gt; m_localMediaSourceEngineInterface;</div><div class="line"><a name="l00375"></a><span class="lineno">  375</span>&#160;    </div><div class="line"><a name="l00376"></a><span class="lineno">  376</span>&#160;    <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">Source</a> m_source;</div><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;};</div><div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno">  380</span>&#160;<span class="keyword">inline</span> std::ostream&amp; operator&lt;&lt;(std::ostream&amp; stream, <span class="keyword">const</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">LocalMediaSource::Source</a>&amp; source) {</div><div class="line"><a name="l00381"></a><span class="lineno">  381</span>&#160;    <span class="keywordflow">switch</span> (source) {</div><div class="line"><a name="l00382"></a><span class="lineno">  382</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a8de8a62c3191fb6cf61e0ac4b2b59045">LocalMediaSource::Source::BLUETOOTH</a>:</div><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;BLUETOOTH&quot;</span>;</div><div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a7aca5ec618f7317328dcd7014cf9bdcf">LocalMediaSource::Source::USB</a>:</div><div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;USB&quot;</span>;</div><div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3aedcb4026e4075f9367b903d5b2c97e65">LocalMediaSource::Source::FM_RADIO</a>:</div><div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;FM_RADIO&quot;</span>;</div><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3abcae55301ccf164120b76b74b960f217">LocalMediaSource::Source::AM_RADIO</a>:</div><div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;AM_RADIO&quot;</span>;</div><div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3ac88fb9fa48ad5e1cf455de65f0a769a8">LocalMediaSource::Source::SATELLITE_RADIO</a>:</div><div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;SATELLITE_RADIO&quot;</span>;</div><div class="line"><a name="l00396"></a><span class="lineno">  396</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00397"></a><span class="lineno">  397</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a8ed9247709b828e86d4db1e0a207e2c5">LocalMediaSource::Source::LINE_IN</a>:</div><div class="line"><a name="l00398"></a><span class="lineno">  398</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;LINE_IN&quot;</span>;</div><div class="line"><a name="l00399"></a><span class="lineno">  399</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00400"></a><span class="lineno">  400</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a22339bd4fde59838518b6304cb6a0caf">LocalMediaSource::Source::COMPACT_DISC</a>:</div><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;COMPACT_DISC&quot;</span>;</div><div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3acfe28902332d7da3436d56bd02e24d67">LocalMediaSource::Source::SIRIUS_XM</a>:</div><div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;SIRIUS_XM&quot;</span>;</div><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3ab30917aa48bf6125b9e85daf9c6eb5fc">LocalMediaSource::Source::DAB</a>:</div><div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;DAB&quot;</span>;</div><div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;    }</div><div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;    <span class="keywordflow">return</span> stream;</div><div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;}</div><div class="line"><a name="l00412"></a><span class="lineno">  412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno">  413</span>&#160;<span class="keyword">inline</span> std::ostream&amp; operator&lt;&lt;(std::ostream&amp; stream, <span class="keyword">const</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19d">LocalMediaSource::ContentSelector</a>&amp; contentSelectorType) {</div><div class="line"><a name="l00414"></a><span class="lineno">  414</span>&#160;    <span class="keywordflow">switch</span> (contentSelectorType) {</div><div class="line"><a name="l00415"></a><span class="lineno">  415</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19daf52e9c50a060add65a035429b2a22229">LocalMediaSource::ContentSelector::CHANNEL</a>:</div><div class="line"><a name="l00416"></a><span class="lineno">  416</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;CHANNEL&quot;</span>;</div><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19da1e3e433edd76f91457ea26d0ae88ec2f">LocalMediaSource::ContentSelector::FREQUENCY</a>:</div><div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;FREQUENCY&quot;</span>;</div><div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;        <span class="keywordflow">case</span> <a class="code" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19dae02d6531f660a4cb37e2e978136891f6">LocalMediaSource::ContentSelector::PRESET</a>:</div><div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;            stream &lt;&lt; <span class="stringliteral">&quot;PRESET&quot;</span>;</div><div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;            <span class="keywordflow">break</span>;</div><div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;    }</div><div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;    <span class="keywordflow">return</span> stream;</div><div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;}</div><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;    </div><div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;} <span class="comment">// aace::alexa</span></div><div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;} <span class="comment">// aace</span></div><div class="line"><a name="l00430"></a><span class="lineno">  430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno">  431</span>&#160;<span class="preprocessor">#endif // AACE_ALEXA_LOCAL_MEDIA_SOURCE_H</span></div><div class="ttc" id="classaace_1_1audio_1_1_audio_output_html_ad03cbdbbf172fd64a16c16b64d8a4b05"><div class="ttname"><a href="classaace_1_1audio_1_1_audio_output.html#ad03cbdbbf172fd64a16c16b64d8a4b05">aace::audio::AudioOutput::MutedState</a></div><div class="ttdeci">MutedState</div><div class="ttdef"><b>Definition:</b> AudioOutput.h:69</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a193e995a51acffd671f2e9b93fe176b3a8ed9247709b828e86d4db1e0a207e2c5"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a8ed9247709b828e86d4db1e0a207e2c5">aace::alexa::LocalMediaSource::Source::LINE_IN</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a9af882dbc200b638b54081e0248ff013"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a9af882dbc200b638b54081e0248ff013">aace::alexa::LocalMediaSource::PlaybackState::artistId</a></div><div class="ttdeci">std::string artistId</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:205</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a31bc8ee91146a94d157d6d91f8a3f366"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a31bc8ee91146a94d157d6d91f8a3f366">aace::alexa::LocalMediaSource::PlaybackState::albumId</a></div><div class="ttdeci">std::string albumId</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:212</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html_a76eedef6ff685965e14f901863d44e7f"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a76eedef6ff685965e14f901863d44e7f">aace::alexa::LocalMediaSource::SessionState::launched</a></div><div class="ttdeci">bool launched</div><div class="ttdoc">Flag that identifies if an application has been launched. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:130</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state_html_a22cb98bddfdd580cc71069d3167a58a5"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html#a22cb98bddfdd580cc71069d3167a58a5">aace::alexa::LocalMediaSource::LocalMediaSourceState::playbackState</a></div><div class="ttdeci">PlaybackState playbackState</div><div class="ttdoc">Variable to hold the playback state. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:253</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a0b32a57129734f844645fe78264195e9"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0b32a57129734f844645fe78264195e9">aace::alexa::LocalMediaSource::PlaybackState::tinyURL</a></div><div class="ttdeci">std::string tinyURL</div><div class="ttdoc">The URL for tiny cover art image resource} . </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:215</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a193e995a51acffd671f2e9b93fe176b3a22339bd4fde59838518b6304cb6a0caf"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a22339bd4fde59838518b6304cb6a0caf">aace::alexa::LocalMediaSource::Source::COMPACT_DISC</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_ac7d32d117f01f4e07020b68eb3d7a329"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac7d32d117f01f4e07020b68eb3d7a329">aace::alexa::LocalMediaSource::PlaybackState::repeatEnabled</a></div><div class="ttdeci">bool repeatEnabled</div><div class="ttdoc">Bool to identify if looping of songs is enabled. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:175</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a193e995a51acffd671f2e9b93fe176b3aedcb4026e4075f9367b903d5b2c97e65"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3aedcb4026e4075f9367b903d5b2c97e65">aace::alexa::LocalMediaSource::Source::FM_RADIO</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a0a697b06e34e1687628a00d7a9e06f55"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0a697b06e34e1687628a00d7a9e06f55">aace::alexa::LocalMediaSource::PlaybackState::coverId</a></div><div class="ttdeci">std::string coverId</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:228</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a874c1999278a4a9598b2cfddf2639563"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a874c1999278a4a9598b2cfddf2639563">aace::alexa::LocalMediaSource::playerEvent</a></div><div class="ttdeci">void playerEvent(const std::string &amp;eventName)</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.cpp:53</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_aa4a2d08e30728bcfb35bcba0f4921aa1"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#aa4a2d08e30728bcfb35bcba0f4921aa1">aace::alexa::LocalMediaSource::volumeChanged</a></div><div class="ttdeci">virtual bool volumeChanged(float volume)=0</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state_html"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html">aace::alexa::LocalMediaSource::LocalMediaSourceState</a></div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:244</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a934dcf2adab877ac18d865ce00b5b9c9"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a934dcf2adab877ac18d865ce00b5b9c9">aace::alexa::LocalMediaSource::PlaybackState::type</a></div><div class="ttdeci">std::string type</div><div class="ttdoc">The type of the media item. For now hard-coded to ExternalMediaAdapterMusicItem. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:181</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a7876023493487be41be9044c198dfba2"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a7876023493487be41be9044c198dfba2">aace::alexa::LocalMediaSource::getSource</a></div><div class="ttdeci">Source getSource()</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.cpp:45</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html_a2b5d75eb773a180280a9e86311fb216a"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a2b5d75eb773a180280a9e86311fb216a">aace::alexa::LocalMediaSource::SessionState::spiVersion</a></div><div class="ttdeci">std::string spiVersion</div><div class="ttdoc">The only spiVersion that currently exists is &quot;1.0&quot;. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:151</div></div>
<div class="ttc" id="classaace_1_1core_1_1_platform_interface_html"><div class="ttname"><a href="classaace_1_1core_1_1_platform_interface.html">aace::core::PlatformInterface</a></div><div class="ttdef"><b>Definition:</b> PlatformInterface.h:29</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a193e995a51acffd671f2e9b93fe176b3abcae55301ccf164120b76b74b960f217"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3abcae55301ccf164120b76b74b960f217">aace::alexa::LocalMediaSource::Source::AM_RADIO</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a5a007447092c61ff90785b4fa9fa0fd3"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a5a007447092c61ff90785b4fa9fa0fd3">aace::alexa::LocalMediaSource::playerError</a></div><div class="ttdeci">void playerError(const std::string &amp;errorName, long code, const std::string &amp;description, bool fatal)</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.cpp:59</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a1899127344b0f4e5bab4ed6fe434d62e"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a1899127344b0f4e5bab4ed6fe434d62e">aace::alexa::LocalMediaSource::PlaybackState::duration</a></div><div class="ttdeci">std::chrono::milliseconds duration</div><div class="ttdoc">Media item duration in milliseconds. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:238</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_ae5c486e6d4c79537597a8430d099b2dd"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ae5c486e6d4c79537597a8430d099b2dd">aace::alexa::LocalMediaSource::PlaybackState::playbackSource</a></div><div class="ttdeci">std::string playbackSource</div><div class="ttdoc">The display name for current playback context, e.g. playlist name. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:184</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a0c31f8757f4f16cdaa82b7488afd21c5"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0c31f8757f4f16cdaa82b7488afd21c5">aace::alexa::LocalMediaSource::PlaybackState::state</a></div><div class="ttdeci">std::string state</div><div class="ttdoc">The state of the default player - IDLE/STOPPED/PAUSED/PLAYING/FINISHED/FAST_FORWARDING/REWINDING/BUFF...</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:163</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_af1bdc078c4702c3f8b7a864dd0095a47"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#af1bdc078c4702c3f8b7a864dd0095a47">aace::alexa::LocalMediaSource::seek</a></div><div class="ttdeci">virtual bool seek(std::chrono::milliseconds offset)=0</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a9663c11c93549bac86bc0794e7a6193b"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a9663c11c93549bac86bc0794e7a6193b">aace::alexa::LocalMediaSource::PlaybackState::supportedOperations</a></div><div class="ttdeci">std::vector&lt; SupportedPlaybackOperation &gt; supportedOperations</div><div class="ttdoc">The set of states the default player can move into from its current state. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:166</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_afe2c689e38a4e5f8bd6ebd630412cef7"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#afe2c689e38a4e5f8bd6ebd630412cef7">aace::alexa::LocalMediaSource::mutedStateChanged</a></div><div class="ttdeci">virtual bool mutedStateChanged(MutedState state)=0</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a5a9c2c7c21e3c64901f49d73e1f33197"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a5a9c2c7c21e3c64901f49d73e1f33197">aace::alexa::LocalMediaSource::PlaybackState::trackNumber</a></div><div class="ttdeci">std::string trackNumber</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:198</div></div>
<div class="ttc" id="namespaceaace_html"><div class="ttname"><a href="namespaceaace.html">aace</a></div><div class="ttdef"><b>Definition:</b> AddressBook.h:26</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a42ff0f9ba02eff868248aa688db77221"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a42ff0f9ba02eff868248aa688db77221">aace::alexa::LocalMediaSource::PlaybackState::playbackSourceId</a></div><div class="ttdeci">std::string playbackSourceId</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:188</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a193e995a51acffd671f2e9b93fe176b3ab30917aa48bf6125b9e85daf9c6eb5fc"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3ab30917aa48bf6125b9e85daf9c6eb5fc">aace::alexa::LocalMediaSource::Source::DAB</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a193e995a51acffd671f2e9b93fe176b3acfe28902332d7da3436d56bd02e24d67"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3acfe28902332d7da3436d56bd02e24d67">aace::alexa::LocalMediaSource::Source::SIRIUS_XM</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a193e995a51acffd671f2e9b93fe176b3a8de8a62c3191fb6cf61e0ac4b2b59045"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a8de8a62c3191fb6cf61e0ac4b2b59045">aace::alexa::LocalMediaSource::Source::BLUETOOTH</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_ac4e528288c407184054986b7c5f4401c"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac4e528288c407184054986b7c5f4401c">aace::alexa::LocalMediaSource::PlaybackState::artistName</a></div><div class="ttdeci">std::string artistName</div><div class="ttdoc">The display name for the currently playing artist. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:201</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_ad1217e4c192da618ae846ba57c8611ac"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#ad1217e4c192da618ae846ba57c8611ac">aace::alexa::LocalMediaSource::setFocus</a></div><div class="ttdeci">void setFocus(bool focusAcquire=true)</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.cpp:65</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_ac2f9ba4ca5782c9ad8d6aa3dffe34d04"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac2f9ba4ca5782c9ad8d6aa3dffe34d04">aace::alexa::LocalMediaSource::PlaybackState::smallURL</a></div><div class="ttdeci">std::string smallURL</div><div class="ttdoc">The URL for small cover art image resource} . </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:218</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html_acf3bb6f9c5201741392a1387fbe774bb"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#acf3bb6f9c5201741392a1387fbe774bb">aace::alexa::LocalMediaSource::SessionState::isGuest</a></div><div class="ttdeci">bool isGuest</div><div class="ttdoc">Flag that identifies if the user currently logged in is a guest. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:127</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_ae2468e3779807990305dfd341ca3d19daf52e9c50a060add65a035429b2a22229"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19daf52e9c50a060add65a035429b2a22229">aace::alexa::LocalMediaSource::ContentSelector::CHANNEL</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_ae2468e3779807990305dfd341ca3d19dae02d6531f660a4cb37e2e978136891f6"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19dae02d6531f660a4cb37e2e978136891f6">aace::alexa::LocalMediaSource::ContentSelector::PRESET</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html_aa5e39976d05399f8ded96efd82760d9a"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#aa5e39976d05399f8ded96efd82760d9a">aace::alexa::LocalMediaSource::SessionState::accessToken</a></div><div class="ttdeci">std::string accessToken</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:142</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a815882ddd4509bc466cb4e9fd7aab90b"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a815882ddd4509bc466cb4e9fd7aab90b">aace::alexa::LocalMediaSource::PlaybackState::mediaType</a></div><div class="ttdeci">MediaType mediaType</div><div class="ttdoc">The Media type enum value from {TRACK, PODCAST, STATION, AD, SAMPLE, OTHER} type of the media...</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:235</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_ad541a6f60242ad371b453570e1e8da4d"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#ad541a6f60242ad371b453570e1e8da4d">aace::alexa::LocalMediaSource::playControl</a></div><div class="ttdeci">virtual bool playControl(PlayControlType controlType)=0</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_ae2468e3779807990305dfd341ca3d19da1e3e433edd76f91457ea26d0ae88ec2f"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19da1e3e433edd76f91457ea26d0ae88ec2f">aace::alexa::LocalMediaSource::ContentSelector::FREQUENCY</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_af5047b85c14787ac9604c2e1cd69ec7b"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#af5047b85c14787ac9604c2e1cd69ec7b">aace::alexa::LocalMediaSource::PlaybackState::mediaProvider</a></div><div class="ttdeci">std::string mediaProvider</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:232</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_ac09dd6568db8fefda4001e9d02bc0a5e"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ac09dd6568db8fefda4001e9d02bc0a5e">aace::alexa::LocalMediaSource::PlaybackState::mediumURL</a></div><div class="ttdeci">std::string mediumURL</div><div class="ttdoc">The URL for medium cover art image resource} . </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:221</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_ae2468e3779807990305dfd341ca3d19d"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19d">aace::alexa::LocalMediaSource::ContentSelector</a></div><div class="ttdeci">ContentSelector</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:85</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html_a68cbf53fad92de84fd8c6c857bbd7332"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a68cbf53fad92de84fd8c6c857bbd7332">aace::alexa::LocalMediaSource::SessionState::active</a></div><div class="ttdeci">bool active</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:136</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a421de2ac72c7b632ececfa0472988c83"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a421de2ac72c7b632ececfa0472988c83">aace::alexa::LocalMediaSource::PlaybackState::trackId</a></div><div class="ttdeci">std::string trackId</div><div class="ttdoc">The arbitrary identifier for currently playing trackid of the track as per the music provider...</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:194</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_ab6fdd7996ddcadc828f3f9de03824626"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#ab6fdd7996ddcadc828f3f9de03824626">aace::alexa::LocalMediaSource::play</a></div><div class="ttdeci">virtual bool play(ContentSelector contentSelectorType, const std::string &amp;payload)=0</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a21f1fe29e355b3df6efe8961cfb2b424"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a21f1fe29e355b3df6efe8961cfb2b424">aace::alexa::LocalMediaSource::PlaybackState::favorites</a></div><div class="ttdeci">Favorites favorites</div><div class="ttdoc">The favorite status {&quot;FAVORITED&quot;/&quot;UNFAVORITED&quot;/&quot;NOT_RATED&quot;}. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:178</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a03ddbda405c7381c38382f7f21e04635"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a03ddbda405c7381c38382f7f21e04635">aace::alexa::LocalMediaSource::PlaybackState::trackOffset</a></div><div class="ttdeci">std::chrono::milliseconds trackOffset</div><div class="ttdoc">The offset of the track in milliseconds. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:169</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state_html_a1a0533445205c67cca585e45ba1e9486"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html#a1a0533445205c67cca585e45ba1e9486">aace::alexa::LocalMediaSource::LocalMediaSourceState::sessionState</a></div><div class="ttdeci">SessionState sessionState</div><div class="ttdoc">Variable to hold the session state. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:250</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html_aa34672570b2e78efa57b913ba5de086d"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#aa34672570b2e78efa57b913ba5de086d">aace::alexa::LocalMediaSource::SessionState::loggedIn</a></div><div class="ttdeci">bool loggedIn</div><div class="ttdoc">Flag that identifies if a user is currently logged in. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:121</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html_a8cff541377f47ba71c31fda6f53b46bf"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a8cff541377f47ba71c31fda6f53b46bf">aace::alexa::LocalMediaSource::SessionState::supportedContentSelectors</a></div><div class="ttdeci">std::vector&lt; ContentSelector &gt; supportedContentSelectors</div><div class="ttdoc">Array of content selector types supported by the player. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:148</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_ad9dbda90ac6bebf653a00d373cc3f296"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#ad9dbda90ac6bebf653a00d373cc3f296">aace::alexa::LocalMediaSource::PlaybackState::shuffleEnabled</a></div><div class="ttdeci">bool shuffleEnabled</div><div class="ttdoc">Bool to identify if shuffling is enabled. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:172</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html_a10073922619c9deba7c285325c7360a5"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a10073922619c9deba7c285325c7360a5">aace::alexa::LocalMediaSource::SessionState::tokenRefreshInterval</a></div><div class="ttdeci">std::chrono::milliseconds tokenRefreshInterval</div><div class="ttdoc">The validity period of the token in milliseconds. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:145</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a193e995a51acffd671f2e9b93fe176b3ac88fb9fa48ad5e1cf455de65f0a769a8"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3ac88fb9fa48ad5e1cf455de65f0a769a8">aace::alexa::LocalMediaSource::Source::SATELLITE_RADIO</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html">aace::alexa::LocalMediaSource::SessionState</a></div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:110</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a193e995a51acffd671f2e9b93fe176b3"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">aace::alexa::LocalMediaSource::Source</a></div><div class="ttdeci">Source</div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:43</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html">aace::alexa::LocalMediaSource</a></div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:38</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html_a94c0ace7076a16849d18bf34fb157a2c"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a94c0ace7076a16849d18bf34fb157a2c">aace::alexa::LocalMediaSource::SessionState::userName</a></div><div class="ttdeci">std::string userName</div><div class="ttdoc">The username of the user currently logged in via a Login directive from Alexa. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:124</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a0489c6562129c6520da07ff829805270"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a0489c6562129c6520da07ff829805270">aace::alexa::LocalMediaSource::PlaybackState::albumName</a></div><div class="ttdeci">std::string albumName</div><div class="ttdoc">The display name of the currently playing album. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:208</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_aecb7cc6074bd7e23c166ace53b5436c1"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#aecb7cc6074bd7e23c166ace53b5436c1">aace::alexa::LocalMediaSource::PlaybackState::trackName</a></div><div class="ttdeci">std::string trackName</div><div class="ttdoc">The display name for the currently playing trackname of the track. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:191</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_session_state_html_a8e331ee5d60fd3d034acddccfd73f87c"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html#a8e331ee5d60fd3d034acddccfd73f87c">aace::alexa::LocalMediaSource::SessionState::endpointId</a></div><div class="ttdeci">std::string endpointId</div><div class="ttdoc">The unique device endpoint. </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:118</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_a193e995a51acffd671f2e9b93fe176b3a7aca5ec618f7317328dcd7014cf9bdcf"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a7aca5ec618f7317328dcd7014cf9bdcf">aace::alexa::LocalMediaSource::Source::USB</a></div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html_a96937de06c1065ed35cde06bf609605a"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html#a96937de06c1065ed35cde06bf609605a">aace::alexa::LocalMediaSource::PlaybackState::largeURL</a></div><div class="ttdeci">std::string largeURL</div><div class="ttdoc">The URL for large cover art image resource} . </div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:224</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state_html"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html">aace::alexa::LocalMediaSource::PlaybackState</a></div><div class="ttdef"><b>Definition:</b> LocalMediaSource.h:157</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_ab548e09fd634975590e4fd3bf2843682"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#ab548e09fd634975590e4fd3bf2843682">aace::alexa::LocalMediaSource::getState</a></div><div class="ttdeci">virtual LocalMediaSourceState getState()=0</div></div>
<div class="ttc" id="classaace_1_1alexa_1_1_local_media_source_html_ae5514b48fe84f065ef8b115de0b6b8c3"><div class="ttname"><a href="classaace_1_1alexa_1_1_local_media_source.html#ae5514b48fe84f065ef8b115de0b6b8c3">aace::alexa::LocalMediaSource::adjustSeek</a></div><div class="ttdeci">virtual bool adjustSeek(std::chrono::milliseconds deltaOffset)=0</div></div>
</div><!-- fragment --></div><!-- contents -->
<html>
  <body>
    <hr style="height:1px;border-width:0;color:gray;background-color:gray">
    <p style="text-align:left;">
      Alexa Auto SDK 2.2.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
      <span style="float:right;">
        Licensed under the <a HREF=http://aws.amazon.com/apache2.0/>Apache License, Version 2.0</a>
      </span>
    </p>
  </body>
</html>
